using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.Contracts;

namespace FoundationLib.Ifc.Domain
{
	/// <summary>
	/// Provides an interface common to components handling messages.
	/// </summary>
	public interface IHandles<T> where T : IMessage 
	{
		/// <summary>
		/// Handles a message.
		/// </summary>
		/// <param name="message">The message to handle</param>
		void Handle(T message);
	}
}